﻿using System;
using System.Collections.Generic;
using System.Windows.Forms;
using GestionaleBolletta.logic;
using System.Linq;
using GestionaleBolletta.data;
using System.Xml;

namespace GestionaleBolletta
{
    /// <summary>
    /// 
    /// </summary>
    public partial class insertNew : Form
    {
        private GestioneXML GestioneXml;
        private List<string> ElencoFornitori;

        public insertNew()
        {
            InitializeComponent();

            GestioneXml = new GestioneXML();

            ElencoFornitori = GestioneXml.Fornitori.Select(x => x.Nome).ToList();
        }
        /// <summary>
        /// Carica gli elementi della drop down
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void InsertNewLoad(object sender, EventArgs e)
        {
            CaricaElementiDropDown();
        }

        /// <summary>
        /// Bottone che manda alla form per l'inserimento di un nuovo fornitore
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void BttInserisciFornitore(object sender, EventArgs e)
        {
            string operatore = cmb_operatore.Text;
            DateTime dataScadenza = dt_dataScadenza.Value;
        }

        /// <summary>
        /// Bottone per l'inserimento di un nuovo fornitore
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void BttAddNewF_Click(object sender, EventArgs e)
        {
            AddNewFornitore nuovoFornitore = new AddNewFornitore();
            nuovoFornitore.ShowDialog();

            CaricaElementiDropDown();
        }

        /// <summary>
        /// Attacca gli elementi fornitore alla drop down
        /// </summary>
        private void CaricaElementiDropDown()
        {
            cmb_operatore.Items.Clear();
            foreach (var item in ElencoFornitori)
            {
                cmb_operatore.Items.Add(item);
            }
        }

        /// <summary>
        /// Inserimento di una nuova bolletta nel file xml
        /// la funzione crea un oggetto bolletta e lo passa al metodo
        /// insertNewBollettaXml che si occupa di inserire i dati nel foglio xml
        /// </summary>
        public void insertNewBolletta()
        {
            string fornitore = cmb_operatore.Text;
            DateTime dataScadenza = Convert.ToDateTime(dt_dataScadenza.Text);
            string descrizione = TxtDescrizione.Text;

            Bolletta bolletta = new Bolletta();
            bolletta.fornitore = fornitore;
            bolletta.dataScadenza = dataScadenza;
            bolletta.descrizione = descrizione;

            GestioneXml.insertNewBollettaXml(bolletta);
        }

        /// <summary>
        /// il click sul bottone inserisci chiama la funzione
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void bt_inserisciBolletta_Click(object sender, EventArgs e)
        {
            insertNewBolletta();
        }
    }
}
